<?php

namespace ABonus\Bundle\ExtractBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Bloc
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="ABonus\Bundle\ExtractBundle\Repository\BlocRepository")
 */
class Bloc
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;


    /**
     * @var string
     *
     * @ORM\Column(name="Description", type="string", length=1000)
     */
    private $description;

    /**
     * @var string
     *
     * @ORM\Column(name="Name", type="string", length=255)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="Type", type="string", length=255)
     */
    private $types;

    /**
     * @var string
     *
     * @ORM\Column(name="Grade", type="string", length=255)
     */
    private $grade;

    /**
     * @ORM\OneToOne(targetEntity="Image")
     * @ORM\JoinColumn(name="image_id", referencedColumnName="id")
     **/
    private $image;

    /**
     * @ORM\ManyToOne(targetEntity="Sector", inversedBy="blocs", cascade={"remove"})
     * @ORM\JoinColumn(name="sector_id", referencedColumnName="id")
     **/
    private $sector;


    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set description
     *
     * @param string $description
     * @return Bloc
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Get description
     *
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Bloc
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set types
     *
     * @param string $types
     * @return Bloc
     */
    public function setTypes($types)
    {
        $this->types = $types;

        return $this;
    }

    /**
     * Get types
     *
     * @return string
     */
    public function getType()
    {
        return $this->types;
    }

    /**
     * Set grade
     *
     * @param string $grade
     * @return Bloc
     */
    public function setGrade($grade)
    {
        $this->grade = $grade;

        return $this;
    }

    /**
     * Get grade
     *
     * @return string
     */
    public function getGrade()
    {
        return $this->grade;
    }

    /**
     * Get types
     *
     * @return string
     */
    public function getTypes()
    {
        return $this->types;
    }


     /**
     * Sets the value of image.
     *
     * @param $image
     *
     * @return Bloc
     */
    public function setImage($image)
    {
        $this->image = $image;

        return $this;
    }

     /**
     *
     * @param
     *
     * @return Image
     */
    public function getImage()
    {
        return $this->image;
    }


    /**
     * Sets the value of id.
     *
     * @param integer $id the id
     *
     * @return self
     */
    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }

    /**
     * Gets the value of sector.
     *
     * @return mixed
     */
    public function getSector()
    {
        return $this->sector;
    }

    /**
     * Sets the value of sector.
     *
     * @param mixed $sector the sector
     *
     * @return self
     */
    public function setSector($sector)
    {
        $this->sector = $sector;

        return $this;
    }
}
